package com.zmn.plat.business.interfaces.price;

import com.zmn.common.dto2.ResponseDTO;
import com.zmn.plat.common.dto.price.ItemPriceQuery;
import com.zmn.plat.common.dto.price.ItemTo;
import com.zmn.plat.common.dto.product.item.ItemPriceDIO;
import com.zmn.plat.common.dto.product.item.ItemPriceDRO;
import com.zmn.plat.common.dto.product.pricelist.ProductPriceListDRO;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 描述: 项目价格接口类
 *
 * @author guoqiao
 * @since 2021/8/27 10:58
 */
public interface ItemPriceBService {

    /**
     * 描述: 根据条件查询项目价格
     *
     * @param query
     * @return List<ItemTo>
     * @author guoqiao
     * @since 2021/9/7 11:28
     */
    List<ItemTo> listItemPriceByQuery(ItemPriceQuery query);

    /**
     * 描述: 根据条件查询项目价格
     * 前台产品的属性值需要进行变换，具体的变化规则为：
     * 1.项目名称：后台产品二级分类名称+产品属性
     * 2.项目分组：项目名称
     * 3.产品名称：前台产品名称
     *
     * @param query
     * @return List<ItemTo>
     * @author guoqiao
     * @since 2021/9/7 11:28
     */
    List<ItemTo> listItemPriceTransByQuery(ItemPriceQuery query);

    /**
     * 描述: 计算总价（阶梯价）
     *
     * @param list
     * @return List<ItemPriceDRO>
     * @author guoqiao
     * @since 2021/8/27 11:43
     */
    List<ItemPriceDRO> listTotalPriceByDIO(List<ItemPriceDIO> list);


}
